home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xarchie-2.0.9 / selectdefs.h < prev    next >
C/C++ Source or Header  |  1995-06-18  |  1KB  |  53 lines

  1. /*
  2.  * selectdefs.h : FD_SET and relatives
  3.  *
  4.  * George Ferguson, ferguson@cs.rochester.edu, 23 Apr 1993.
  5.  *
  6.  * I don't really expect this to work if none of the include cases
  7.  * is used. I mean, where's the definition of the fd_set structure,
  8.  * anyway? However, perhaps it's a start. Better would be to add a case
  9.  * to the confgure script to find the things no matter where they are.
  10.  *
  11.  * 13 May 1993: Fail if none of the macros defined.
  12.  */
  13.  
  14. #include "config.h"
  15.  
  16. #include <stdio.h>            /* Some folks need this also */
  17.  
  18. #ifdef FD_SET_IN_SYS_TYPES_H            /* normal */
  19. # include <sys/types.h>
  20. #else
  21. #ifdef FD_SET_IN_SYS_SELECT_H
  22. # include <sys/select.h>            /* _AIX */
  23. #else
  24. #ifdef FD_SET_IN_SYS_INET_H
  25. # include <sys/inet.h>                /* u3b2 */
  26. #else
  27. "One of the FD_SET_IN_* macros must be defined in config.h!";
  28. #endif
  29. #endif
  30. #endif
  31.  
  32. #ifndef NBBY
  33. # define NBBY        8                /* bits per byte */
  34. #endif
  35. #ifndef NFDBITS
  36. # define NFDBITS    (sizeof (fd_mask) * NBBY)       /* bits per mask */
  37. #endif
  38. #ifndef FD_SETSIZE
  39. # define FD_SETSIZE    32
  40. #endif
  41. #ifndef FD_SET
  42. # define FD_SET(n,p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
  43. #endif
  44. #ifndef FD_CLR
  45. # define FD_CLR(n,p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
  46. #endif
  47. #ifndef FD_ISSET
  48. # define FD_ISSET(n,p)    ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
  49. #endif
  50. #ifndef FD_ZERO
  51. # define FD_ZERO(p)    bzero((char *)(p), sizeof(*(p)))
  52. #endif
  53.